﻿using System;
using System.Collections.Generic;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using INSTA.GestionEcole.DAL;

namespace INSTA.EcoleGestion.FORMS
{
    public partial class Suppression : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void ButtonSuppresion(object sender, EventArgs e)
        {
            
            using (var context = new GestionInstaEntities())
            {
               
                
                
                
                //On récupere l'ID que l'on a tapé dans la page et on le parse on int pour
                // le chercher dans la base de donnée.

                int identifiant = int.Parse(TextBox1.Text);

                var query = from p in context.Etudiant
                            where p.ID == identifiant
                            select p;

                //Cas ou l'identifiant n'est pas dans la base de donnée :
                int query3 = (from p in context.Etudiant
                              where p.ID == identifiant
                              select p).Count();

                if (query3 == 0)
                {
                   /* Session["ErreurSuppresion"] = "L'identifiant n'existe pas, Deux cas possibles :";
                    Session["Cas1"] = "L'identifiant inscrit est erroné";
                    Session["Cas2"] = "La personne possédant cette identifiant a déja était supprimé";
                    Response.Redirect("~/ErreurSuppression.aspx");*/
                    Label1.Text = "L'identifiant n'existe pas, Deux cas possibles :";
                    Label2.Text = "- L'identifiant inscrit est erroné";
                    Label3.Text = "- La personne possédant cette identifiant a déja était supprimé";
                    Label1.ForeColor = Color.DarkRed;
                    Label1.Visible = true;
                    Label2.ForeColor = Color.DarkRed;
                    Label2.Visible = true;
                    Label3.ForeColor = Color.DarkRed;
                    Label3.Visible = true;
                
                
                }


                //On fait une sauvegarde de la fiche supprimer si celle ci a était supprimer par erreur
                //La variable nomPrenom sert a créer un fichier de sauvegarde qui
                //a pour nom le nom et le prenom de la personne

                String NomPrenom = "";
                foreach (var et in query)
                {
                    NomPrenom = et.Nom + et.Prenom;
                }
                string path = @"C:\Users\Sisi\Documents\" + NomPrenom + ".txt";

                // Création du fichier contenant les informations de la personne supprimée
                using (FileStream fs = File.Create(path))
                {
                    foreach (var etu in query)
                    {

                        Byte[] info = new UTF8Encoding(true).GetBytes("Nom : " + etu.Nom + "\nPrenom :" + etu.Prenom +
                                                                      "\nPassWord : " + etu.Password + "\nPromo : " +
                                                                      etu.Promo +
                                                                      "\nEmail : " + etu.email + "\nAdresse : " +
                                                                      etu.Adresse + "\nTel : " + etu.Tel);

                        fs.Write(info, 0, info.Length);
                    }
                }

                //On supprime la personne dans la base de donnée
                foreach (var etu2 in query)
                {
                    context.Etudiant.Remove(etu2);

                }
                context.SaveChanges();
            }
        }
    }
}
